package com.framework.admin.service;

import com.framework.admin.domain.vo.DeptUserTreeVo;
import com.framework.admin.model.SysRole;
import com.framework.admin.model.SysUser;
import com.framework.common.vo.TreeNode;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import java.util.List;
import java.util.Map;

public interface IRoleService {
    Page<SysRole> getRoleList(SysRole role, PageRequest request);

    SysRole save(SysRole role);

    void update(SysRole role);

    void delete(List<String> ids);

    List<TreeNode<SysRole>> getTree(SysRole role);

    void updateRoleMenu(String id, List<String> menus);

    List<String> getMenuCodes(SysRole role);

    List<SysRole> allList(SysRole role);

    List<SysUser> getRoleUserInfo(String roleId);

    List<String> getRoleByUserId(String userId);

    List<DeptUserTreeVo> getDeptUserTree();

    void bindUserRole(String roleId, List<String> userIds);

    void unbindUserRole(String roleId, List<String> userIds);

    List<Map<String,String>> getTreeInfoByRoleId(String roleId);
}
